Asymmetrical cryptographic communication method and portable object therefore

ABSTRACT

The invention relates to an asymmetric cryptographic communication process which establishes a correspondence between a first value (x) represented by n elements (x 1 , . . . , x n ) of a ring (A) and a second value (y) represented by m elements (y 1 , . . . , y m ) of this ring, n and m being integers greater than or equal to 2. The said correspondence is defined by multi variable public polynomials (P i ) of A n+m+k  -&gt;A, with a low total degree, such that there are equations of the type P i  (x 1 , . . . , x n  ; y 1 , . . . , y m  ; z 1 , . . . , z k )=0, where(z 1 , . . . , z k ) are possible intermediate variables and k is an integer. At least the majority of the polynomials (P i ) do not have the form T i  (y 1 , . . . , y m )=S i  (x 1 , . . . , x n ), where the S i  s would be polynomials with a total degree of 2 and the T i  s would be polynomials with a total degree of 1.

BACKGROUND OF THE INVENTION Field of the Invention

The invention relates to an asymmetric cryptographic communication process for processing messages and protecting communications between interlocutors. It can be used to encrypt messages in an asymmetric way, or to sign them in an equally asymmetric way. It can also be used in asymmetric authentication.

SUMMARY OF THE INVENTION

This process uses two novel families of algorithms that are called "Dragon" and "Chains". These two families can also be combined.

What makes these new algorithms particularly advantageous is that some of them are:

1. easily used in low-power chip cards;

2. "ONE-WAY TRAPDOOR" bijections, that is, bijections that are public key encryption functions;

3. furthermore, bijections on very short variables (of 64 or 128 bits, for example).

These "Dragon" and "Chains" algorithms can be seen as a subtle and effective "fix" of an algorithm invented in 1988 by MATSUMOTO and IMAI (Tsutomu Matsumoto and Hideki Imai, "Public quadratic polynomial-tuples for efficient signature-verification and message-encryption", Advances In Cryptology, Eurocrypt '88 (Christoph G. Gunther, ed.), Lecture Notes in Computer Science, Vol. 330, Springer-Verlag, 1988, pp. 419-453). This algorithm was cracked in 1995 by Jacques PATARIN (the attack was published at the CRYPTO '95 congress, Springer-Verlag, pp. 248-261).

For this reason, the invention relates to an asymmetric cryptographic communication process which establishes a correspondence between a first value (x) represented by n elements (x₁, . . . , x_(n)) of a ring (A) and a second value (y) represented by m elements (y₁, . . . , y_(m)) of this ring, n and m being integers greater than or equal to 2, characterized in that:

this correspondence is defined by multivariable public polynomials (P_(i)) of A^(n+m+k) →A, with a low total degree, such that there are equations of the type (P_(i) (x₁,. . . , x_(n) ; y₁, . . . , y_(m) ; z₁, . . . , z_(k))=0 where (z₁, . . . z_(k)) are possible intermediate variables and k is an integer;

at least the majority of the polynomials (P_(i)) are not in the form T_(i) (y₁, . . . , y_(m))=S_(i) (x₁, . . . , x_(n)), where the S_(i) s would be polynomials with a total degree of 2 and the T_(i) s would be polynomials with a total degree of 1.

The invention also relates to an associated portable object, specifically a portable object which does not store the multivariable public polynomials (P_(i)).

The concept of a "value x" to be transformed according to the process of the invention designates, as appropriate, either a message (for example when the process is used in encryption) or more generally a magnitude from which a verification is intended to be executed (for example when the process is used in signature verification or authentication).

The concept of "low degree" mentioned below must be understood to designate a degree less than or equal to 6, preferably less than or equal to 4, but at the same time greater than or equal to 2.

BRIEF DESCRIPTION OF THE DRAWINGS

Other details and advantages of the invention will become apparent from the following description of certain preferred but non-limiting embodiments with reference to the appended drawings, in which:

FIG. 1 is a diagram illustrating the concatenation of the transformations used to process a message, according to a first variant of the process of the invention, used in encryption; and

FIG. 2 illustrates an exemplary encryption/decryption system using the cryptographic communication process according to the invention.

DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS

2. "Dragon" Algorithm

2.1 The basic concept of "Dragons".

The name "Dragons" has been given to a first family of algorithms based on the invention. The basic concept that distinguishes the two families of algorithms "Dragon" and "Matsumoto-Imai" will now be presented. Then, in the subsequent paragraphs, certain particularly advantageous examples of "Dragons" will be shown. Finally, another family of algorithms based on the invention, which are called "Chains", will be described.

For Matsumoto-Imai

The public form exists in the form of n multivariable polynomials in a finite field K, giving an image value y constituted by a plurality of elementary image values y₁, . . . , y_(n) as a function of a value x constituted by a plurality of elementary values x₁,. . . , x_(n) in the form: ##EQU1## where P₁, P₂, . . . , P_(n) are polynomials of K[x₁, . . . , x_(n) ], that is, polynomials of K^(n) →K, these polynomials having a total degree of 2.

For the Dragons

The public form exists in the form of X multivariable polynomials in a field K (or a ring), in which the variables y₁, Y₂, . . . , y_(m) and x₁, x₂, . . . , x_(n) of K occur in the form: ##EQU2## where P₁, P₂, . . . , P.sub.λ are polynomials of K^(n) ×K^(m) →K, with a low total degree (for example 2).

Thus, the fundamental difference between the Dragons and the MATSUMOTO-IMAI algorithms resides in the fact that, in the public form, the variables x_(i) and y_(j) have been "mixed".

2.2 First example: the "Small Dragon".

To begin with, a first, fairly simple example of a "Dragon algorithm" will now be presented. This example clearly illustrates the concept of Dragon algorithms, but unfortunately this algorithm is not very secure cryptographically, as indicated by the author in the article "Asymmetric Cryptography with a Hidden Monomial" (LNCS 1109, Crypto '96, Springer, pages 45 through 60). Then, in paragraphs 2.3, 2.4, 2.5 and 2.6, other examples of Dragon algorithms, for which no general attack is presently known, will be shown.

In this case, λ=m=n, and K is a small finite field (for example, K=F₂, the field with two elements). The number of elements of K is notated q=|K|.

If x=(x₁, . . . , x_(n)) is a value constituted in this example by an unencrypted message, and y=(y₁, . . . , y_(n)), the corresponding encrypted message, the passage from x₁, . . . , x_(n) to y₁, . . . , y_(n), can be calculated as represented in FIG. 1:

1) A first secret affine bijective transformation s is applied to x=(x₁, . . . , x_(n)), thus obtaining an image a=s(x)=(a₁, . . . , a_(n)).

2) A public or secret transformation f is applied to (a), resulting in an image b=f(a)=a^(q).spsp.θ^(+q).spsp.φ⁻¹ where θ and φ are public or secret integers such that h=q.sup.θ +q.sup.φ -1 is prime with respect to q^(n) -1, and where one is in a position to raise the power to h in a representative of the field (generally notated F_(q) n) with q^(n) elements.

3) Finally, b=(b₁, . . . , b_(n)) is transformed into y=(y₁, . . . , y_(n)) by applying to b a second secret affine bijective transformation t such that y=t(b).

All of these operations being invertible, it is also possible to calculate (x₁, . . . , x_(n)) from (y₁, . . . , y_(n)) if the secrets t and s are known. For example, b=a^(h) will be inverted by a=b^(h'), where h' is an integer such that h.h'=1 modulo q_(n) -1, where (.) is the symbol of the multiplication operation.

Moreover, since b=a^(q).spsp.θ^(+q).spsp.φ⁻¹, it can be deduced that b.a=a^(q).spsp.θ^(+q).spsp.φ, and therefore that in a base where a=(a₁, . . . , a_(n)) and b=(b₁, . . . , b_(n)), there are n equations with the form:

    ΣΣγ.sub.ij.b.sub.i.a.sub.j =ΣΣδ.sub.ij.a.sub.i.a.sub.j             (1)

Therefore, by expressing the b_(i) s as a function of the y_(i) s, and the a_(i) s as a function of the x_(i) s it is possible to determine that there are n equations with the form:

    ΣΣμ.sub.ij y.sub.i.x.sub.j =ΣΣν.sub.ij x.sub.i.x.sub.j +Σβ.sub.i y.sub.i +Σα.sub.i x.sub.i +δ.sub.0                                            (2)

that is, n equations with the form:

    P.sub.i (x.sub.1, . . . , x.sub.n, y.sub.1, . . . , y.sub.n)=0, i=1 . . . n,

where P_(i) is a polynomial of K^(2n) →K, with a total degree of 2.

These n equations P_(i) are made public. They constitute the public key.

In effect, anyone can use them to encrypt a message, that is to calculate y₁, . . . , y_(n) from x₁, . . . , x_(n), without knowing any secrets, in the following way. By replacing x₁, . . . , x_(n) by their values and by transferring these values into the equations (2), n equations with a degree of 1 are obtained in the y_(i) s.

All of the solutions of these n equations are easily obtained by GAUSS reduction. If a≠0 (which is always the case except for an exceptional x), there is only one solution in b of b.a=a^(q).spsp.θ^(+q).spsp.φ, therefore there is only one solution after a GAUSS reduction: this will be the encrypted message (y₁, . . . , y_(n)) to be sent.

The small Dragon in signature.

It is easy to use the Small Dragon algorithm in signature: for example, if y₁, . . . , y_(n) is either the message to be signed or a "hash" of the message to be signed (that is, the result of a hash function applied to the message), or a public function of the message to be signed, then x₁, . . . , x_(n) will be the signature.

And the signature is verified by verifying that:

    ∀i, 1≦i≦n, P.sub.i (x.sub.1, . . . , x.sub.n, y.sub.1, . . . , y.sub.n)=0

that is, by verifying that all of the public equations (2) are satisfied.

2.3 More general examples of Dragons, with a "monomial" transformation.

In this case, λ=m=n, and K is a small finite field (for example K=F₂, the field with two elements). The number of elements of K is notated q=|K|.

If x=(x₁, . . . , x_(n)) is a value constituted in this example by an unencrypted message, and y=(y₁, . . , y_(n)), is the corresponding encrypted message, the passage from x₁, . . . , x_(n) to y₁, . . . y_(n) can be calculated as follows, if one has the secrets (the way to calculate it from x without the secrets will be shown later):

1) A first secret affine bijective transformation s is applied to x=(x₁, . . . , x_(n)), thus obtaining an image a=s(x)=(a₁, . . . , a_(n)).

2) A public or secret transformation f is applied to (a), resulting in an image b=f(a) such that:

    a (q.sup.θ +q.sup.φ).M(b)=a (qζ+q.sup.ξ).N(b)(1)

where θ, φ and ζ, ξ are public or secret integers such that h=q.sup.θ +q.sup.φ -q.sup.ζ -q.sup.ξ are prime with respect to q^(n) -1, and where one is in a position to raise the power in a representative of the field (generally notated F_(q) n) with q^(n) elements, and where M and N are secret or public affine functions. (m and n are secret a priori, but if they are public, they must be chosen very carefully in order to prevent certain attacks.) The symbol () represents the power function.

How is b calculated from a? It will now be shown that this is always possible using a general method, but that for certain specific functions M and N, there may be methods that provide better performance than the general method which will now be presented.

If the equation (1) is written in the components (a₁, . . . , a_(n)) and (b₁, . . . , b_(n)) of a and b (c. through d. in a base of F_(q) n), n equations with the following form are obtained:

    Σγ.sub.ijk a.sub.i a.sub.j b.sub.k =Σμ.sub.ijk a.sub.i a.sub.j =0                                                (2)

where γ_(ijk) and μ_(ij) are coefficients of K. This is due to the fact that the functions which associate x (q.sup.θ) with x, and which associate x (q.sup.φ) with x, are linear functions of F_(q) n, therefore the functions which associate x (q.sup.θ +q.sup.φ) with x, and which associate x (q.sup.ζ +q.sup.ξ) with x, are given in a base by polynomials with a total degree of 2.

Then, when a is given, n equations with a degree of 1 in the values b_(i) are obtained from the n equations (2). Therefore, it is easy to find the solutions to these equations by Gauss reduction. It is assumed that at least one solution b such that M(b)≠0 or N(b)≠0 will be found. If more than one solution is found, one of the solutions for b is chosen at random.

3) Finally, b=(b₁, . . . , b_(n)) is transformed into y=(y₁, . . . , y_(n)) by applying to b a second secret affine bijective transformation t such that y=t(b).

All of these operations being invertible, it is therefore possible to calculate (x₁, . . . , x_(n)) from (y₁, . . . , y_(n)) if one knows the secrets t and s. For example, if M(b)≠0, then a will be found from b by means of: a=(N(b)/M(b))^(h'), where h' is the inverse of:

    h=q.sup.θ +q.sup.φ -q.sup.ζ -q.sup.ξ  modulo q.sup.n -1.

Public calculation of (y₁, . . . , y_(n)) from (x₁, . . . , x_(n)):

The n equations (2) will be transformed into a system of n equations with the following form:

    Σα.sub.ijk x.sub.i x.sub.j y.sub.k +Σβ.sub.ij x.sub.i x.sub.j +Σν.sub.ij x.sub.i y.sub.j +Σε.sub.i x.sub.i +Σζ.sub.i y.sub.i +δ.sub.0 =0                                         (3)

that is, n equations P_(i) (x₁, . . . , x_(n), y₁, . . . , y_(n))=0, i=1 . . . n, where P_(i) is a polynomial of K^(2n) to K with a total degree of 3.

These n equations (3) will be public. They constitute the public key. By using these equations (3), and by Gauss reduction, it is possible to calculate all the solutions (y₁, . . . , y_(n)) from (x₁, . . . , x_(n)) without any secrets.

These n equations (3) are obtained from the n equations (2) in the following two steps:

Step 1: The variables b_(i) are replaced by their affine expressions in the variables y_(j) and the variables a_(i) are replaced by their affine expressions in the variables x_(j).

Step 2: Then, a secret affine bijective transformation is applied to these equations.

2.4 An example in signature with m≠n.

The following is example that can be used in signature, with m≠n.

As usual, let y=(y₁, y₂, . . . , y_(m)) notate a hash of the message to be signed (or the message to be signed).

Let Q₁, . . . , Q_(n) and Q'₁, . . . , Q'_(n) be 2n secret multivariable polynomials with a total degree of 2 of K^(n) →K.

Let b=t⁻¹ (y), where t is a secret affine bijection of K^(m) →K^(m) ; b=(b₁, b₂, . . . , b_(m))

Let B notate the element of K^(n) whose components are:

    B=(Q.sub.1 (b.sub.1, b.sub.2, . . . , b.sub.m), Q.sub.2 (b.sub.1, b.sub.2, . . . , b.sub.m), . . . , Q.sub.n (b.sub.1, b.sub.2 . . . , b.sub.m)).

And let B' notate the element of K^(n) whose components are:

    B'=(Q'.sub.1 (b.sub.1, b.sub.2, . . . , b.sub.m), Q'.sub.2 (b.sub.1, b.sub.2, . . . , b.sub.n), . . . , Q'.sub.n (b.sub.1, b.sub.2 . . . , b.sub.m)).

It is possible to consider B and B' as representing (in a base) two elements of the field F_(q) n.

In this field, let a be the element such that:

    B.a.sup.q.spsp.θ.sup.+q.spsp.φ =B'.a.sup.q.spsp.θ'.sup.+q.spsp.φ'              (3)

a is represented in a base by a=(a₁, . . . , a_(n)).

Finally, let x=s(a), where s is a secret affine bijection of K^(n) →K^(n).

x=(x₁, . . . , x_(n)) in a base.

By writing the equation (3) in a base, and by writing the equations in the variables x_(i) and y_(j), n equations with a total degree of 4 in the variables x₁, . . . , x_(n), y₁, . . . , y_(m) ar obtained.

These n equations will be public and, (x₁, . . . , x_(n)) will be a valid signature of (y₁, . . . , y_(m)) if and only if all of these n equations are verified.

In order to calculate a signature with the secrets, one need only calculate b, then B and B', and then a from (3), and finally x using x=s(a).

2.5 More general examples of Dragons, with a "non-monomial polynomial" transformation.

The same notations as before will be retained. In encryption, x still designates the unencrypted message and y designates the encrypted message (in signature, x is the signature and y is a public transformation of the message to be signed, for example y is Hash(M), where Hash is a hash function).

Let a=s(x) still designate the transformation of x by a secret affine bijection s, and let b designate the transformation of y by a secret affine transformation (y=t(b)). a is considered to be an element of the field K₁ with q^(n) elements (K1-F_(q) n) and b is considered to be an element of the field K₂ with q^(m) elements (K2=F_(q) m).

An example in which the passage from a to b is slightly more general than before will now be presented.

Let k and k' be two integers, and let N_(i), 1<=i<=k, and N'_(i), 1<=i<=k' be secret affine functions of K₂ to K₁ (as before, "affine" means that these functions are affine when K₂ and K₁ are considered to be vectorial spaces in the field K with q elements); moreover, the symbol (<=) means "less than or equal to".

Finally, for any element a of K₁ and any element b of K₂ let f(a,b)=Σα_(i) a (q.sup.β i+q.sup.γ i).N_(i) (b)+Σα'_(i) a (q.sup.β' i).Ni'(b)+δ₀, where, in the first sum Σ, the subscript i varies from 1 to k, and in the second sum Σ the subscript i varies from 1 to k'.

Let d be the degree in a of this polynomial. There are known algorithms for finding the solutions a of the equation f(a,b)=0 when d is not too large (say d<=9,000) for example. Moreover, f(a,b) was constructed so as to be expressed in a base in the form of polynomial equations with a total degree of 3 (a total degree of 2 in the variables a_(i), and of 1 in the variables b_(j)). As before, these equations will be written by replacing the variables a_(i) with their affine expressions in the variables x_(j) and by replacing the variables b_(i) with their affine expressions in the variables y_(j). Then, a secret affine bijective transformation u is carried out on the system of equations obtained and the system thus obtained is made public: it is the public key. This public key is therefore constituted by equations with a total degree of 3 (a total degree of 2 in the variables x_(i) and of 1 in the variables y_(i)). From these public equations, it is possible to calculate the solutions y_(i) corresponding to a given x by Gauss reduction. On the other hand, the inverse operation (calculating x from y) requires the knowledge of secrets.

2.6 "Incomplete Dragons".

In all the examples of "Dragon" algorithms in encryption given, if redundancy is introduced into the message x, the redundancy algorithm being public, it is therefore possible not to publish all of the equations that were public equations, that is, to keep a small number of them secret. This can, in effect, reinforce the solidity of the algorithm. The correct value of x will then be found due to the public redundancy.

Likewise, in signature, it is possible not to publish all of the equations which were previously called public equations: the signature verification will then be carried out with fewer equations.

It is possible to envision other examples of "Dragon" algorithms. It is crucial, however, to be aware of the fact that certain variants are cryptographically weak: in the article "Asymmetric Cryptography with a Hidden Monomial" (LNCS 1109 Crypto '96, Springer, pages 45 through 60), the author presented some attacks on certain weak variants.

3. "Chain" Algorithms

3.1 The basic idea of "chains".

The basic idea of the "chains," as compared to MATSUMOTO-IMAI, is to introduce intermediate variables z_(i), 1≦i≦k, that is, to have public polynomials P_(i) which depend not only on the usual variables x_(i) and y_(i) (where the x_(i) s represent the message to be encrypted and the y_(i) s represent the encrypted message in encryption, or where the x_(i) s represent the signature of the y_(i) s in signature) but also on the intermediate variables z_(i).

3.2 First example: "Small Chains".

To begin with, some first, fairly simple examples of "Chain Algorithms" will be presented. These examples clearly illustrate the concept of Chain Algorithms, but unfortunately these first exemplary algorithms are not very cryptographically secure. In effect, it is possible to generalize certain attacks from the article "Asymmetric Cryptography with a Hidden Monomial" (LNCS 1109, Crypto '96, Springer, pages 45 through 60) to these examples. Then, in paragraph 3.5, other examples of Chain Algorithms, for which no general attack is presently known, will be shown.

For example, let a, b, c, d be four elements of the field with q^(n) elements and let four integers θ, φ, α and β be such that:

    c=a.sup.1+q.spsp.θ                                   (1)

    d=a.sup.1+q.spsp.φ                                     (2)

and

    b=c.sup.q.spsp.α ×d.sup.q.spsp.β          (3)

therefore b=a^(h) where h=q.sup.α +q.sup.α+θ +q.sup.β +q.sup.β+φ. It is assumed that θ, φ, α and β have been chosen such that h is prime with respect to q^(n) -1.

Next, let it be assumed that x=s(a) and y=t(b), where s and t are secret affine bijective functions. And let z=u(c) and z'=v(d), where u and v are secret affine functions.

From (1), it is deduced that there are n relations with the form:

    z.sub.i =ΣΣγ.sub.ij.x.sub.i.x.sub.j +Σα.sub.i.x.sub.i +δ.sub.0              (1')

Likewise, from (2) it is deduced that there are n relations with the form:

    z'.sub.i =ΣΣγ'.sub.ij.x.sub.i.x.sub.j +Σα'.sub.i.x.sub.i +δ'.sub.0            (2')

Likewise, from (3) it is deduced that there are n relations with the form:

    y.sub.i =ΣΣγ".sub.ij.z.sub.i.z'.sub.i +Σα".sub.i.z.sub.i +Σβ.sub.i ".z'.sub.i +δ".sub.0                                           (3')

Next, let it be assumed that the 3×n equations (1'), (2') and (3') are public. Therefore, if x is the message to be encrypted, the z_(i) s will be obtained from (1'), the z'_(i) s will be obtained from (2'), then the y_(i) s will be obtained from (3'). Thus, it is possible to calculate the encrypted y from x and from the public polynomials.

On the other hand, if y is known but x is unknown, it would seem that it is not always possible to get back to x from y. In effect, from (3'), it is only possible to get back to n equations for 2×n variables z_(i) and z'_(i), and therefore the z_(i) s and the z'_(i) s remain unknown.

On the other hand, if the secret keys s and t are known, it is possible to calculate b=t⁻¹ (y) from y, then a=b^(h'), where h' is the inverse of h modulo q^(n) -1, then finally x=s(a). Thus, with the secret key, it is possible to decrypt the messages.

3.3.--Second example: small chains with Dragon.

The same notations as in the preceding paragraph will be retained, but it will now be assumed that:

    c=a.sup.q.spsp.θ.sup.+q.spsp.φ.sup.-1            (1),

    d=a.sup.q.spsp.θ'.sup.+q.spsp.φ'.sup.-1          (2),

and

    c.sup.q.spsp.α ×b=d.sup.q.spsp.β ×b.sup.q.spsp.γ                               (3)

where θ, φ, θ', φ', α, β and γ are integers. Therefore, likewise, b=a.sup.μ for a particular μ and θ, φ, α, θ', φ', α, β and γ will be chosen such that μ is prime with respect to q^(n) -1. The algorithm will work in exactly the same way, but this time the public equations (1') are in the form:

    ΣΣγ.sub.ij.z.sub.i.x.sub.j +ΣΣγ'.sub.ij.x.sub.i.x.sub.j +Σα.sub.i.x.sub.i +Σβ.sub.i z.sub.i +δ.sub.0 =0                                                        (1')

and the public equations (2') are in the form:

    ΣΣμ.sub.ij.z'.sub.i.x.sub.j +ΣΣμ'.sub.ij.x.sub.i.x.sub.j +Σα'.sub.i.x.sub.i Σβ'.sub.i.z'.sub.i +δ'.sub.0 =0          (2')

If x is the message to be encrypted, the z_(i) s will be obtained by GAUSS reduction from (1'), the z'_(i) s will be obtained by GAUSS reduction from (2'), and the y_(i) s will be obtained from (3').

3.4 Utilization of chains in signature.

The examples in paragraphs 3.2 and 3.3, given for encryption, can also be used in signature. In this case, x represents the signature associated with y, and the signature verification consists of verifying whether variables z_(i) and z'_(i) that satisfy (1'), (2') and (3') actually exist.

3.5 More general chains.

In a public key, in the examples in paragraphs 3.2 and 3.3, the intermediate variables z and z' were obtained from x, then y was obtained from z and z'. It is possible to envision longer chains.

For example, from the x_(i) s, it is possible to obtain variables z_(i). Then, from the variables x_(i) and z_(i), it is possible to obtain variables z'_(i). Next, from the variables x_(i), z_(i) and z'_(i), the variables z"i would be obtained. Then finally, from the variables x_(i), z_(i), z'_(i) and z"_(i), . . . , y would be obtained.

An example of this more general type of chain, for which no attack is known, will now be presented.

Notations.

x is the unencrypted text,

y is the encrypted text,

s and t are two secret affine functions,

b=t(y),

a=s(x),

k is an integer (this is the number of "links" of the chain),

a, b, L₁, L₂, . . . L_(k), M₁, M₂, . . . M_(k) are elements of F₂ ^(n),

s₁, . . . , s_(k), t₁, . . . t_(k) are 2k secret affine bijections,

for any subscript i such that 1<=i<=k: l_(i) =s_(i) (L_(i)),

and m_(i) =t_(i) (M_(i)).

Comment.

x, y, l₁, . . . l_(k), m₁, . . . m_(k) are the values which will occur in the public equations and a, b, L₁, L₂ . . . L_(k), M₁, . . . M_(k) are the values that are accessible with the secrets.

For all subscripts i, 1<=i<=k, there are two exponents h_(i) and h'_(i) such that: L₁ =a^(h) _(i) and M_(i) =a^(h') _(i) (further details on h_(i) and h'_(i) are given below), and there is an exponent h such that: b=a^(h).

Thus, in this example, the secret key calculations will be easy:

1. Calculate b=t(y),

2. Calculate a=b^(h') where hh'=1 modulo 2n-1,

3. Finally, calculate x=s⁻¹ (a).

The equations that are public will now be described. There are two types of them: there are the "link" type equations (of which there are 2k.n), which make it possible to go from x to l₁ or from x to m₁ or from l₁ to l_(i+1) or from m_(i) to m_(i+1), and there are the n final public equations, which make it possible to go from (l_(k), m_(k)) to y.

The equations of the "link" type.

Take the way in which one gets from x to l₁ as an example; in effect, it is the same for the other "links", that is, for getting from l_(i) to l_(i+1), or from x to m₁, or from m_(i) to m_(i+1), 1<=i<=k-1.

There are four secret integers, which are notated α, β, γ, δ, such that:

    a.sup.2 α.L.sub.1.sup.2 β =a.sup.2 γ.L.sub.1.sup.2 δ(C 1)

Furthermore, α, β, γ, δ are chosen such that: HCD(2γ-2.sup.α, 2^(n) -1)=1 and HCD(2.sup.δ -2.sup.β, 2^(n) -1)=1 (which makes it possible to have bijective transformations). It will be recalled that HCD means "Highest Common Denominator."

When (C1) is written in a base with the components x_(i) of the variable x and the variables l1, i of the variable l1, n equations with the following form are obtained:

    Σγ.sub.ij x.sub.i l.sub.1,j +Σξ.sub.i x.sub.i +Σψ.sub.i l.sub.1,i +μ.sub.0 =0              (C2).

These n equations (C2) are public (or, more precisely, a linear bijective transformation of these equations is made public).

From these equations (C2) it is possible, without any secrets, to calculate l₁ from x, by performing Gauss reductions.

Likewise, it is possible to calculate l₂ from l₁, then l₃ from L₂, etc., up to l_(k) from l_(k-1), and therefore it is possible to calculate l_(k) from x. Likewise, it is possible to calculate m_(k) from x. It is therefore possible to calculate l_(k) and m_(k) from x by means of the 2k.n public equations.

The final public equations.

The n "final" public equations will then make it possible to calculate y from m_(k) and l_(k). (In this case, the calculation is "one-way", which means that without secrets, it will not be possible to know how to get back to m_(k) and l_(k) from y). Here are two typical examples of possible final equations.

EXAMPLE 1

    b.sup.2 α'.L.sub.k.sup.2 β' =b.sup.2 α".M.sub.k.sup.2 δ",                                                 (C3)

where α', β', α" and β" are secret integers.

EXAMPLE 2

    b.M.sub.k =L.sub.k.sup.2 θ+2 φ                   (C 4)

where θ and φ are secret integers.

This equation ((C3) or (C4)) is written in a base with the variables y_(i), m_(k),i and l_(k),i. Thus, n equations are obtained. A linear and bijective transformation of these n equations is made public, which makes it possible to calculate y from l_(k) and m_(k) (by Gauss reduction).

Thus, it will be possible, from public equations, to calculate y from x, as desired.

4. A Method for Reducing the Size of the Public Keys.

The secret affine functions s and t which occur in the Dragon and Chain algorithms are coefficients with value in the same ring A as the variables which occur. However, it is sometimes advantageous to limit oneself to coefficients in a sub-ring A' of A, since in that case the public polynomials could themselves have coefficients in a sub-ring A" of A, making it possible to reduce the number of bits required for the description of these public polynomials. This technique is particularly appropriate for the examples given above.

5. One Way Not to Store the Polynomials P_(i)

In a chip card capable of calculating the values (y) from (x), and possibly (x) from (y), it is not always necessary for the card to store all the public polynomials P_(i). In effect, since these polynomials have a low total degree, the card could supply values (x), and (y) corresponding to (x), from which it is possible to recalculate the public polynomials P_(i) from outside. More generally, it could supply values which make it possible to recalculate the public polynomials P_(i), which values may be signed, or which public polynomials to be found may be signed, and which signature (and not all the public polynomials) would be stored in the card.

6. Encryption/Decryption System Using the Process of the Invention

FIG. 2 schematically illustrates an example of a known encryption/decryption system using the cryptographic communication process described above.

Say there are two individuals A and B connected to the same communication network, each of whom has a respective message sending/receiving device 1, 2. This device includes calculation means, for example a computer, designed to carry out the encryption/decryption of messages, and storage means. At least part of these calculation or storage means can be located in a portable object incorporating a microprocessor or micro-wired logical circuits which define areas to which access is controlled, and can therefore contain secret information such as cryptographic keys (see for example the portable object described in U.S. Pat. No. 4,211,919).

Each device incorporates an algorithm F as described above, specifically in the form of a program, as well as the inverse algorithm F⁻¹. The two devices are connected to one another by means of a communication line 3.

Both individuals A and B, respectively, have a pair of keys: a public key Cp^(A) and Cp^(B), and a secret key Cs^(A) and Cs^(B) correlated to the corresponding public key Cp^(A) or Cp^(B).

The individual A sends B his public key Cp^(A) and possibly a signature of this public key, and B sends A his public key Cp^(B) and possibly a signature of this public key. Once A has received the public key Cp^(B), he will use it, along with the cryptographic algorithm F, to encrypt a message M that he wishes to send to B, and a message M'. This message, once received by B, is decrypted using the cryptographic algorithm F⁻¹ and the secret key Cs^(B). 

What is claimed is:
 1. An asymmetric cryptographic communication process for establishing a cryptographic correspondence between a first communication element called a first value (x) and a second communication element called a second value (y), comprising:establishing a correspondence between said first value (x) represented by n elements (x₁, . . . , x_(n)) of a ring (A) and said second value (y) represented by m elements (y₁, . . . , y_(m)) of said ring, wherein n and m are integers having a value greater than or equal to
 2. establishing said correspondence between said first value (x) and said second value (y) is established by defining multivariable public polynomials (P_(i)) of A^(n+m+k) →A, with a total degree less than or equal to 6, such that equations of the type P_(i) (x₁, . . . , x_(n) ; y₁, . . . , y_(m) ; z₁, . . . , z_(k))=0 can be satisfied where (z₁, . . . , z_(k)) are possible intermediate variables and k is an integer; wherein at least some of the polynomials (P_(i)) are not of a form T_(i) (y₁, . . . , y_(m))=S_(i) (x₁, . . . , x_(n)), in which S_(i) is a polynomial with a total degree of two, and in which T_(i) is a polynomial with a total degree of one, so that said established correspondence enables communication between said first and second communication elements.
 2. A process according to claim 1, wherein at least some of the polynomials (P_(i)) are not of the form T_(i) (y₁, . . . , y_(m))=S_(i) (x₁, . . . x_(n)), in which the S_(i) s are polynomials with a total degree less than or equal to 6 and in which the T_(i) s are polynomials with a total degree of
 1. 3. A process according to claim 1, wherein the multivariable public polynomials (P_(i)) have the form P_(i) (x₁, . . . , x_(n) ; y_(i), . . . , y_(m))=0, and wherein at least some polynomials are of a form such that there is an integer j between 1 and n, and an integer p between 1 and m, such that said polynomials (P_(i)) contain at least one non-null monomial in x_(j).y_(p).
 4. A process according to claim 3, in which said correspondence between the first value (x) and the second value (y) is defined by the following steps:1) calculating a function y=F(x) using the knowledge of a first secret affine transformation s and a second secret affine transformation t, s being an affine transformation of A^(n) →A^(n), that is, determined by n polynomials with a total degree of 1 in n variables, and t being an affine transformation of A^(m) →A^(m), that is, determined by m polynomials with a total degree of 1 in m variables, said function y=F(x) being calculated in the following way:a) applying the affine transformation s to x, and obtaining an image: a=s(x) b) applying a transformation f to the image (a), resulting in an image b such that: b=f(a), wherein: if a=(a₁, a₂, . . . , a_(i), . . . , a_(n)) and b=(b₁, b₂, . . . b_(j), . . . , b_(m)), a_(i) and b_(j) being elements of A, there is a correspondence defined by multivariable public polynomials (V_(i)) of A^(n+m) →A, which are non-null and have a low total degree, each of which satisfies an equation of the type:

    V.sub.i (a.sub.1, a.sub.2, . . . , a.sub.i, . . . , a.sub.n ; b.sub.1, b.sub.2, . . . , b.sub.j, . . . , b.sub.m)=0              (I)

at least some polynomials (V_(i)) being such that there is an integer j between 1 and n, and an integer p between 1 and m, such that said polynomials (V_(i)) contain at least one non-null monomial in a_(j).b_(p) ; and selecting the transformation f such that there is an algorithm which makes it possible, for many images b, to calculate at least one image (a) such that: f(a)=b; c) applying the affine transformation t to the image b, and obtaining t(b)=y; 2) deducing, from the existence of the equations (I), the existence of equations (II), by changing variables, said equations (II) defining said multivariable polynomials (P_(i)):

    P.sub.i (x.sub.1, x.sub.2, . . . , x.sub.n ; y.sub.1, y.sub.2, . . . , y.sub.m)=0                                                (II)

wherein at least some of said polynomials are public.
 5. A process according to claim 1, wherein the multivariable public polynomials (P_(i)) comprise defined polynomials (Q_(j)) of A^(n+k) →A in the form Q_(j) (x_(i), . . . , x_(n) ; z₁, . . . , z_(k))=0, and defined polynomials (R_(p)) of A^(m+k') →A in the form R_(j) (y₁, . . . , y_(m) ; z'₁, . . . , z'_(k'))=0, where (z₁, . . . , z_(k)) and (z'₁, . . . , z'_(k')) are intermediate variables that are positively present, and j, p, k and k' are integers.
 6. A process according to claim 1, further comprising calculating a message signature, said message signature including the second value y=(y₁, . . . , y_(m)) representing a message to be signed or a function of the message to be signed, and the first value x=(x₁, . . . , x_(n)) representing a signature of the message, which process comprises verifying said message signature by verifying that said equations on the polynomials (P_(i)) have in fact been satisfied, wherein, when variables z₁, . . . , z_(k) occur in said equations, said process includes a further step of verifying whether variables of this type (z₁, . . . , z_(k)) that will satisfy all of said equations actually exist.
 7. A process according to claim 1 further comprising encrypting a message, in which a first value x=(x₁, . . . , x_(n)) represents the message to be encrypted and in which a second value y=(y₁, . . . , y_(m)) represents the encrypted message, which process comprises applying said correspondence with the first value x in order to obtain, for at least some of the values x, a second value y, using a set of public keys which include said multivariable public polynomials (P_(i)).
 8. A process according to claim 1, further comprising executing an asymmetric authentication, by a first person called a verifier, of another person called a prover, the process further comprising:sending, from the verifier to the prover, a value constituted by the second value (y); returning, from the prover to the verifier, a value constituted by the first value (x); said verifier then verifying that said equations on the polynomials (P_(i)) are in fact compatible with the first (x) and second (y) values, wherein, when the variables z₁, . . . , z_(k) occur in said equations, said process includes the further step of verifying whether variables of this type (z₁, . . . , z_(k)) that will satisfy all of said equations actually exist.
 9. A process according to claim 1, wherein:the correspondence includes at least one secret affine transformation s defined by a matrix composed of coefficients with value in said ring (A), and said coefficients of the matrix have value in a sub-ring (A') of (A) such that said multivariable public polynomials (P_(i)) have coefficients with value in a sub ring (A") of (A).
 10. A process according to claim 1, wherein each monomial of said multivariable public polynomials (P_(i)) contains at least one variable y_(j), and wherein a total degree in the variables y_(j) of the polynomials (P_(i)) is 0 or
 1. 11. A process according to claim 1, wherein:A is a finite field K having a small number of elements notated q=|K|; m=n; a and b represent two values of two elements of the field Fq^(n) with q^(n) elements; the transformation f is a bijection of the form f(a)=b=a^(h), where h is a public or secret integer and is prime with respect to q^(n) -1.
 12. A portable object for establishing a cryptographic correspondence between a first communication element called a first value (x) and a second communication element called a second value (y), comprisinginformation processing means, and storage means, said information processing means and storage means interconnected and arranged to carry out an asymmetric cryptographic communication which establishes a correspondence between said first value (x) represented by n elements (x₁, . . . , x_(n)) of a ring (A) and said second value (y) represented by m elements (y_(i), . . . , y_(j) . . . , y_(m)) of said ring, n and m being integers greater than or equal to 2 wherein: said correspondence is defined by multivariable public polynomials (P_(i)) of A^(n+m+k) →A, with a total degree less than or equal to 6, such that P_(i) (x₁, . . . , x_(n) ; y₁, . . . , y_(m) ; z₁, . . . , z_(k))=0, where (z₁, . . . , z_(k)) are possible intermediate variables and k is an integer; at least some of the polynomials (P_(i)) are not of a form T_(i) (y₁, . . . , y_(m))=S_(i) (x₁, . . . , x_(n)), in which S_(i) is a polynomial with a total degree of 2 and in which T_(i) is a polynomial with a total degree of 1; wherein said storage means does not store the multivariable public polynomials (P_(i)); and wherein the portable object is so constructed and arranged to supply, to an external device, only the data that makes it possible to calculate, from outside the portable object, the multivariable public polynomials (P_(i)), by means of which the second value (y) can be calculated from the first value (x), so that said established correspondence enables communication between said first and second communication elements. 